<?php namespace Common\Model;
use Hdphp\Model\Model;

class Cate extends Model{
//    操作的数据表
    protected $table='category';
//    自动验证
    protected $validate=array(
        array('cname','required','分类名称不能为空',3,3),
        array('cname','maxlen:20','分类名称不能大于20个字符',3,3),
//        array('csort','required','分类的排序不能为空',3,3),
    );

//    分类的添加
    public function store(){
        if($this->create()){
            $this->add();
            return true;
        }
        return false;
    }

    //    分类的编辑
    public function edit(){
        if($this->create()){
            //p($this->data);exit;
            //添加save方法所需要的数据就是$this->data里面的数据
//            需要在前端页面中有隐藏域
            $this->save();
            return true;
        }
        return false;
    }

    //    获得自己和子集的分类
    public function getNotmy($cid){
//        1获得子集的分类
        $cids=$this->getSon($this->get(),$cid);
//        print_r($this->get());

//        然后压入自己的cid
        $cids[]=$cid;
//        2排除自己和子集cid的数据
        $where="cid NOT IN (".implode(',',$cids).")";
        return $this->where($where)->get();
    }
//    获得子集
    public function getSon($data,$cid){
//        设置一个临时空数组
        $temp=array();
//        循环所有数据
        foreach($data as $u){
//            如果找到pid  等于获得的cid的数据就是其子集
            if($u['pid']==$cid){
//                把找到的子集压入临时数组中
                $temp[]=$u['cid'];
//                递归调用不断合并
                $temp=array_merge($temp,$this->getSon($data,$u['cid']));
            }
        }
//        得到最终结果反出
        return $temp;
    }

}